Information processing systems use random number generators in executing a variety of tasks such as numeric integration, data and systems simulations, communications, and random sampling. Random number generators are also key components of secure systems such as trusted computing modules. Random number generators for such systems ideally generate a series of values (e.g., bits) such that prediction of a specific value in the series is impossible. However, the random series can generally be characterized statistically. For example, a random series of bits may be characterized as containing a specific percentage (e.g., 50%) of bits with value “0” even though predicting that a specific bit has value “0” is not possible.
Conventional random number generators that are implemented in software typically use numeric techniques to generate seemingly random series. Many of these techniques use the properties of prime numbers because no formula is known that identifies the prime number among the set of integers. However, these conventional random number generators produce pseudo random series since the formulas that generate the series allow prediction and reproduction of the series.
One type of hardware based random number generator is based on the complexity of thermal noise fluctuations that exhibit “chaotic” behavior. The difficulty of predicting a chaotic process is assimilated to randomness. A drawback of this type of random number generator is that tampering with or alteration of the environment of the generator can control or influence the thermal noise. Further, sufficiently powerful processing systems with appropriate models or algorithms may become able to predict thermal processes.
A quantum random number generator has been proposed that is based on measurement of a quantum state of a single photon having two possible paths. In particular, detectors in the possible paths will detect the photon in one path or the other, but a prediction of the path taken by the photon is theoretically impossible if the original state of the photon has non-zero probability amplitudes for both paths. A random series of bits can thus be generated by producing a series of identical single photon states, measuring each state to detect a path for each photon, and assigning a bit value “0” to detection of a photon in one path and a bit value “1” to detection of a photon in the other path. A problem with this quantum random number generator is that statistics, e.g., the percentages of ones and zeros, in the random series depend on the probability amplitudes of the original photon states. Accordingly, tampering with or errors in the preparation of the photon states used in generating the random series will produce a biased series, e.g., a series lacking the desired statistical properties.